u`
IuWFNgwKFuRl̖mvdグāu喂ov
Q[JKFimageIuWFNg̃vpeBA摜̏dˍ킹Ȃ

RPGK5 uRl̖mvdľiÂj

uRl̖mv̖_悤RiK
@ Rl̖mHPAMP̏lقȂ悤ɂ
E킹āARandomIuWFNgPɂČグƂ悢
EMadoshiNXRandomIuWFNgRl̖mɎgΗǂ
E@́AMadoshiRandomIuWFNgstaticɂ悤
A HPsm͍UłȂ悤ɂ
EMadoshiNXFight()Ɂuhp0ȉȂ0ԂvǋL
B HPsmUƁum͂Ȃvƕ\ĖAm̍Uɐi
EminimadouNXŖmUOɂ̖mHP0ł邱Ƃ`FbN悤
E0ȉ̏ꍇ́um͂Ȃvƕ\
C m̍UɃvC[HP0ȉɂȂAŏI点
Em̍USmɂČJԂɁAvC[HP0ł邱ƂΗǂ
EȂāAm̍USmɂČJԂꍇl
D Rl|uRl̖m|Ivƕ\悤
EuȂ͎ɂ܂Bv̕\return悤iMain\bh甲遁Ij
EC[v̏IɁiꍇ`ājuRl̖m|Ivƕ\
E̔f̂߂ɁA͗pansnullŏĂ

쐬

//IuWFNgwK RPGK5(5)
using System;
class Madoshi { //m\NX
    int mp; //MP(JvZ(p.166)̂߂publicɂȂ)
    int hp; //HP(V)
    int id; //mԍ
    static Random rnd = new Random(); //yύXzpRandomNX̃CX^X𐶐
    public Madoshi(int id) { //RXgN^(p.167)Ŗmԍ󂯎
        mp = rnd.Next(10); //0`9̊Ԃ̃_Ȑ𓾂MP̏lƂ
        hp = 10 + rnd.Next(10); //10`19̊Ԃ̃_Ȑ𓾂HP̏lƂ
        this.id = id; //疂mԍ󂯎
    }
    public int HP { //HPԂvpeB
        get { return hp; } 
    }
    public void DispInfo() { //m̏\
        Console.Write("m{0}(HP={1} MP={2})", id, hp, mp); //\(sȂ)
    }
    public int Fight() { //mȂUAȂ̃_[WlԂ
        if (hp <= 0) return 0; //yǉzłꍇ0Ԃ
        if (rnd.Next(2) == 1) { //m1/2Ŗ@UǂI
            int j = rnd.Next(5) + 1; //MP1`5̗
            DispInfo(); // m̏\
            Console.WriteLine("͏MP" + j + "̖@!");
            if (mp < j) { // MPsH
                Console.WriteLine("MPȂ!");
                return 0; // Ȃ̃_[W=0Ԃ(UI)
            } else { // MP[H
                Console.WriteLine("Ȃ" + j * 4 + "̃_[W󂯂!");
                mp -= j; //MP
                return j * 4; //Ȃ̃_[W=MP4{Ԃ(UI)
            }
        } else { //ʏUH
            int k = rnd.Next(5) + 1; //U͂1`5̗
            DispInfo(); //m̏\
            Console.WriteLine("̍U!");
            Console.WriteLine("Ȃ" + k + "̃_[W󂯂!");
            return k; //Ȃ̃_[W=1`50Ԃ(UI)
        }
    }
    public void Damage() { //mȂ_[W炤
        int k = 5 + rnd.Next(5); //Ȃ̍U͂5`9̗
        Console.WriteLine("Ȃ̍U!");
        DispInfo(); //m̏\(U󂯂̖mHP\)
        Console.WriteLine("" + k + "̃_[W^!");
        hp -= k; //mHP_E
    }
}
class minimadou { //Q[{̂̃NX
    public static void Main() { //Q[is郁\bh
        Random rnd = new Random(); //pRandomNX̃CX^X𐶐
        string ans; //͗p
        // 퓬Jn
        int myhp = 40 + rnd.Next(21); //ȂHP40+040+20ɂ
        Madoshi[] m = { new Madoshi(1),new Madoshi(2),new Madoshi(3) }; //Sm𐶐
        foreach (var w in m) { //SmČJԂ
            w.DispInfo(); //m̏\
            Console.WriteLine("ꂽB");
        }
        // 퓬(ȂʂCmʂ܂ŌJԂ)
        while (myhp > 0 && (m[0].HP > 0 || m[1].HP > 0 || m[2].HP > 0)) { //ȂƂǂꂩ̖mHP
            Console.Write("cHP{0}łBǂU܂H(1/2/3:m1,2,3 0:߂)F", myhp); //yύXz
            ans = Console.ReadLine(); //񓚂𓾂
            int ansi = int.Parse(ans) - 1; //ϊ-1m̓Y0`2𓾂
            if (ansi == 0 || ansi == 1 || ansi == 2) { //mUH
                if (m[ansi].HP > 0) { //yǉzĂ閂mH
                    m[ansi].Damage(); //mU
                    if(m[ansi].HP <= 0) { //m[]|H
                        Console.WriteLine("m{0}|!", ans);
                    }
                } else { //yȉǉz
                    Console.WriteLine("m{0}͂Ȃ!", ans);
                }
                for (int i = 0; i < 3 && myhp > 0; i++) { //yύXzSmɂČJԂ
                    myhp -= m[i].Fight(); //m̍UIȂHP}CiX
                }
            } else { // ߂H
                if (rnd.Next(2) == 0) { //m50
                    Console.WriteLine("邱Ƃł!");
                    break; // JԂI(p.125)
                } else {
                    Console.WriteLine("Ȃ!");
                    for (int i = 0; i < 3 && myhp > 0; i++) { //yύXzSmɂČJԂ
                        myhp -= m[i].Fight(); //m̍UIȂHP}CiX
                    }
                }
            }
            if (myhp <= 0) { //ȂHPȂH
                Console.WriteLine("Ȃ͎ɂ܂B");
                return; //yǉzQ[I
            }
        }
        Console.WriteLine("Rl̖m|I"); //yǉz
    }
}

RPGK6 u喂ovdľ

E喂DaimadoNXiMadoshiNX̔hNXjŎ悤
EFight()ADamage()\bhAHPԂvpeB͌p
EDispInfo()\bh̓I[o[Chāu喂(HP={0} MP={1})v\ɂ悤
Ef[^o͂̂܂܁imԍ͎gȂj
ERXgN^͈svMP̏l40`49AHP̏l40`49ɂ悤iid͗pȂj
EminimadouNXł́uRl̖m|Iv̌Ɂu喂ꂽIvɕύXi܂AƑ喂j
ĚŁu퓬(ȂʂCmʂ܂ŌJԂ)vƓ̓euȂC喂ʂ܂ŌJԂvōsΗǂ
EuǂU܂H(1/2/3:m1,2,3 0:߂)vuU܂H(1: 0:߂)vɂ悤
Euϊ-1m̓Y0`2𓾂v͕sv
EumUHv́u1Ȃ΁vOK
EuĂ閂mHv`FbN͕sv
Eum{0}|!v́u喂|!vɂāAreturn悤iMain\bh甲遁Ij
Eum{0}͂Ȃ!v͕sv
EuSmɂČJԂvKv͂Ȃ
EuȂv̂ƂAuSmɂČJԂvKv͂Ȃ
EuRl̖m|Iv͕sv
E喂Ƃ̐퓬JnOɃvC[HP40`49ɉ񕜂(HPꍇ̂)

쐬

//IuWFNgwK RPGK6
using System;
class Madoshi { //m\NX
    protected int mp; //yύXzMP(JvZ(p.166)̂߂publicɂȂ)
    protected int hp; //yύXzHP(V)
    int id; //mԍ
    protected static Random rnd = new Random(); //yύXzpRandomNX̃CX^X𐶐
    public Madoshi() { } //yǉzftHgRXgN^(pp)
    public Madoshi(int id) { //RXgN^(p.167)Ŗmԍ󂯎
        mp = rnd.Next(10); //0`9̊Ԃ̃_Ȑ𓾂MP̏lƂ
        hp = 10 + rnd.Next(10); //10`19̊Ԃ̃_Ȑ𓾂HP̏lƂ
        this.id = id; //疂mԍ󂯎
    }
    public int HP { //HPԂvpeB
        get { return hp; } 
    }
    public virtual void DispInfo() { //yύXzm̏\
        Console.Write("m{0}(HP={1} MP={2})", id, hp, mp); //\(sȂ)
    }
    public int Fight() { //mȂUAȂ̃_[WlԂ
        if (hp <= 0) return 0; //łꍇ0Ԃ
        if (rnd.Next(2) == 1) { //m1/2Ŗ@UǂI
            int j = rnd.Next(5) + 1; //MP1`5̗
            DispInfo(); // m̏\
            Console.WriteLine("͏MP" + j + "̖@!");
            if (mp < j) { // MPsH
                Console.WriteLine("MPȂ!");
                return 0; // Ȃ̃_[W=0Ԃ(UI)
            } else { // MP[H
                Console.WriteLine("Ȃ" + j * 4 + "̃_[W󂯂!");
                mp -= j; //MP
                return j * 4; //Ȃ̃_[W=MP4{Ԃ(UI)
            }
        } else { //ʏUH
            int k = rnd.Next(5) + 1; //U͂1`5̗
            DispInfo(); //m̏\
            Console.WriteLine("̍U!");
            Console.WriteLine("Ȃ" + k + "̃_[W󂯂!");
            return k; //Ȃ̃_[W=1`50Ԃ(UI)
        }
    }
    public void Damage() { //mȂ_[W炤
        int k = 5 + rnd.Next(5); //Ȃ̍U͂5`9̗
        Console.WriteLine("Ȃ̍U!");
        DispInfo(); //m̏\(U󂯂̖mHP\)
        Console.WriteLine("" + k + "̃_[W^!");
        hp -= k; //mHP_E
    }
}
class Daimado : Madoshi { //yȉǉz喂NX(mNX̔hNX)
    public Daimado() { //RXgN^
        mp = 40 + rnd.Next(10); //40`49̊Ԃ̃_Ȑ𓾂MP̏lƂ
        hp = 40 + rnd.Next(10); //40`49̊Ԃ̃_Ȑ𓾂HP̏lƂ
    }
    public override void DispInfo() { //喂̏\
        Console.Write("喂(HP={0} MP={1})", hp, mp); //\(sȂ)
    }
}
class minimadou { //Q[{̂̃NX
    public static void Main() { //Q[is郁\bh
        Random rnd = new Random(); //pRandomNX̃CX^X𐶐
        string ans = null; //͗p
        // 퓬Jn
        int myhp = 40 + rnd.Next(21); //ȂHP40+040+20ɂ
        Madoshi[] m = { new Madoshi(1),new Madoshi(2),new Madoshi(3) }; //Sm𐶐
        foreach (var w in m) { //SmČJԂ
            w.DispInfo(); //m̏\
            Console.WriteLine("ꂽB");
        }
        // 퓬(ȂʂCmʂ܂ŌJԂ)
        while (myhp > 0 && (m[0].HP > 0 || m[1].HP > 0 || m[2].HP > 0)) { //ȂƂǂꂩ̖mHP
            Console.Write("cHP{0}łBǂU܂H(1/2/3:m1,2,3 0:߂)F", myhp); 
            ans = Console.ReadLine(); //񓚂𓾂
            int ansi = int.Parse(ans) - 1; //ϊ-1m̓Y0`2𓾂
            if (ansi == 0 || ansi == 1 || ansi == 2) { //mUH
                if (m[ansi].HP > 0) { //Ă閂mH
                    m[ansi].Damage(); //mU
                    if(m[ansi].HP <= 0) { //m[]|H
                        Console.WriteLine("m{0}|!", ans);
                    }
                } else { 
                    Console.WriteLine("m{0}͂Ȃ!", ans);
                }
                for (int i = 0; i < 3 && myhp > 0; i++) { //SmɂČJԂ
                    myhp -= m[i].Fight(); //m̍UIȂHP}CiX
                }
            } else { // ߂H
                if (rnd.Next(2) == 0) { //m50
                    Console.WriteLine("邱Ƃł!");
                    break; // JԂI(p.125)
                } else {
                    Console.WriteLine("Ȃ!");
                    for (int i = 0; i < 3 && myhp > 0; i++) { //SmɂČJԂ
                        myhp -= m[i].Fight(); //m̍UIȂHP}CiX
                    }
                }
            }
            if (myhp <= 0) { //ȂHPȂH
                Console.WriteLine("Ȃ͎ɂ܂B");
                return; //Q[I
            }
        }
        if (ans != "0") { //̂łȂ
            Console.WriteLine("Rl̖m|I");
        }
        //yȉǉz{XJn
        Daimado d = new Daimado(); //喂𐶐
        d.DispInfo(); //喂̏\
        Console.WriteLine("ꂽB");
        int newhp = 40 + rnd.Next(10); //VHP4049Ō߂
        if (myhp < newhp) { //񕜂H
            myhp = newhp; //HP
            Console.WriteLine("HP񕜁I");
        }
        // 퓬(ȂʂC喂ʂ܂ŌJԂ)
        while (myhp > 0 && d.HP > 0) { //ȂƑ喂HP
            Console.Write("cHP{0}łBU܂H(1:U 0:߂)F", myhp); 
            ans = Console.ReadLine(); //񓚂𓾂
            if (ans == "1") { //喂UH
                d.Damage(); //喂U
                if(d.HP <= 0) { //喂|H
                    Console.WriteLine("喂|!");
                    break; //Q[I
                }
                myhp -= d.Fight(); //喂̍UIȂHP}CiX
            } else { // ߂H
                if (rnd.Next(2) == 0) { //m50
                    Console.WriteLine("邱Ƃł!");
                    break; //Q[I
                } else {
                    Console.WriteLine("Ȃ!");
                    myhp -= d.Fight(); //哱m̍UIȂHP}CiX
                }
            }
            if (myhp <= 0) { //ȂHPȂH
                Console.WriteLine("Ȃ͎ɂ܂B");
                break; //Q[I
            }
        }
    }
}

oFuRl̖mE喂ov

eLXgю\F11́u\́v
Q[JK\FimageIuWFNg̃vpeBA摜̏dˍ킹Ȃ
